package d5_dataOutStream;

import java.io.DataInputStream;
import java.io.FileInputStream;

public class DataInputStreamDemo01 {
    public static void main(String[] args) {
        //目标: 掌握 特殊数据输入流读取特殊数据输出流写出去的数据
        try (
                //1、创建特殊数据输入流与源文件的管道
                DataInputStream dis = new DataInputStream(new FileInputStream("javapromax\\day10-io-code\\src\\陈某07.txt"));

        ) {
            //2、开始读取数据----------->通信很严格-->就是这样,我发什么你就得接受什么
            byte b = dis.readByte();
            System.out.println(b);
            boolean b1 = dis.readBoolean();
            System.out.println(b1);
            int i = dis.readInt();
            System.out.println(i);
            char c = dis.readChar();
            System.out.println(c);
            String s = dis.readUTF();
            System.out.println(s);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //序列化与反序列化-->不是乱码  序列化后的文件,不是乱码-->是一种特殊的对象格式-->不是给我们看的, 目的是为了读出来
    //参与序列化就是要保存，那它必须实现序列化接口，也就是一定要实现这样一个接口了
    ///*
    // 它相对只是一个通行证，只是一个证书，它的目的是为了告诉我们的虚拟机。请把这个对象按照序列化的标准格式来进行存储，因为这个对象到底怎么存储，肯定有标准，没有标准，到时候存进去。
    // */
    //你要实现这个接口通知他要这样要去存
    //
    /*
    * 我给比如说我是个甲方，我给你一套项目，我有个对象，不想让你保存。
我怕不安全。我怕有风险，懂了吧？我就不让这对象实现序列化接口，如果实现序列化接口，你保存的有些敏感数据，到时候被人家窃取了怎么办？所以它也有这个目的，对吧？它只是个通行证。

    * */
}
